//
//  NSRecursiveLockDemo.m
//  JKThreadTest
//
//  Created by 王冲 on 2018/10/25.
//  Copyright © 2018年 JK科技有限公司. All rights reserved.
//

#import "NSRecursiveLockDemo.h"

@interface NSRecursiveLockDemo ()

@property(nonatomic,strong) NSRecursiveLock *lock;

@end

@implementation NSRecursiveLockDemo

-(instancetype)init{
    
    if (self = [super init]) {
        
        // 初始化锁
        self.lock = [[NSRecursiveLock alloc]init];
    }
    
    return self;
}

/**
 线程1：otherTest（+-）
 otherTest（+-）
 otherTest（+-）
 
 线程2：otherTest（等待）
 */
// 同一个线程可以对同一把锁进行加锁
- (void)otherTest
{
    [self.lock lock];
    
    NSLog(@"%s", __func__);
    
    static int count = 0;
    if (count < 10) {
        count++;
        [self otherTest];
    }
    
   [self.lock unlock];
}

//- (void)otherTest2
//{
//    pthread_mutex_lock(&_mutex2);
//
//    NSLog(@"%s", __func__);
//
//    pthread_mutex_unlock(&_mutex2);
//}

@end
